;
(function($) {
	var Page = function(id, callback) {
		var self = this;
		self._wp = $(id);
		self.callback = callback;

		self.curPage = 1;
		self.totalPage = 0;
		self.totalNum = 0;
		self.pageSize = 10;

		// 初始化
		self.init();

		self._page = self._wp.find(".page");
		self._curPage = self._wp.find(".curPage");
		self._totalPage = self._wp.find(".totalPage");
		self._totalNum = self._wp.find(".totalNum");
		self._firstPage = self._wp.find(".firstPage");
		self._prevPage = self._wp.find(".prevPage");
		self._nextPage = self._wp.find(".nextPage");
		self._lastPage = self._wp.find(".lastPage");
		self._pageSize = self._wp.find(".pageSize");
		self._pageSizeSel = self._wp.find(".pageSizeSel");

		self._pageSize.unbind().click(function() {
			var _o= $(this);
			self._pageSize.removeClass("pageSizeSel");
			_o.addClass("pageSizeSel");
			self.pageSize = _o.html();
			
			self.reflashTableData();
		});

		// 绑定事件
		self._firstPage.unbind().click(function() {
			self.firstPage();
		});

		self._prevPage.unbind().click(function() {
			self.prevPage();
		});

		self._nextPage.unbind().click(function() {
			self.nextPage();
		});

		self._lastPage.unbind().click(function() {
			self.lastPage();
		});
	};

	window["Page"] = Page;

	Page.prototype = {
		// 初始化
		init : function() {
			var self = this;
			var str = '<div class="page">'
					+ '<div class="pageDiv">'
					+ '<a class="pageInfo">共 <span class="totalNum">0</span> 条，当前  <span class="curPage">1</span>/<span class="totalPage">1</span></a> '
					+ '<a class="firstPage" href="javascript:;">首页</a> '
					+ '<a class="prevPage" href="javascript:;">上一页</a> '
					+ '<a class="nextPage" href="javascript:;">下一页</a> '
					+ '<a class="lastPage" href="javascript:;">尾页</a> '
					+ '<a class="pageSizeInfo"><span class="pageSize pageSizeSel">10</span> / <span class="pageSize">20</span> / <span class="pageSize">50</span></a>'
					+ '</div>' + '</div>	';

			this._wp.html(str);
		},

		// 显示分页
		showPage : function() {
			this._page.show();
		},

		// 隐藏分页
		hidePage : function() {
			this._page.hide();
		},

		// 获取分页信息
		getPageInfo : function() {
			var self = this;

			return {
				"curPage" : self.curPage,
				"pageSize" : self.pageSize
			};
		},

		// 刷新页面数据
		reflashTableData : function() {
			var self = this;
			self._curPage.html(self.curPage);

			if (typeof self.callback != "undefined") {
				self.callback();
			}
		},

		// 初始化分页
		initPages : function(totalNumber, totalPage) {
			var self = this;
			self.totalNum = totalNumber;
			self.totalPage = totalPage;
			self._totalNum.html(self.totalNum);
			self._totalPage.html(self.totalPage);

			if (totalPage == 1) {
				// self.hidePage();
			} else {
				self.showPage();
			}
		},

		// 首页
		firstPage : function() {
			var self = this;
			var _o=$(".all-checkbox");
			if (_o!=null && _o.prop("checked")) {
				_o.removeAttr("checked");
			}
			self.curPage = 1;

			self._firstPage.addClass("dis");
			self._prevPage.addClass("dis");
			self._nextPage.removeClass("dis");
			self._lastPage.removeClass("dis");

			self.reflashTableData();
		},

		// 上一页
		prevPage : function() {
			var self = this;
			var _o=$(".all-checkbox");
			if (_o!=null && _o.prop("checked")) {
				_o.removeAttr("checked");
			}
			var p = self.curPage - 1;

			// 可以上一页
			if (p >= 1) {
				self.curPage--;
				self._curPage.html(self.curPage);
				self.reflashTableData();
				
				self._nextPage.removeClass("dis");
				self._lastPage.removeClass("dis");
			}

			// 是否还可以继续上一页
			p = p - 1;
			if (p < 1) {
				self._firstPage.addClass("dis");
				self._prevPage.addClass("dis");
				self._nextPage.removeClass("dis");
				self._lastPage.removeClass("dis");
			}
		},

		// 下一页
		nextPage : function() {
			var self = this;
			var _o=$(".all-checkbox");
			if (_o!=null && _o.prop("checked")) {
				_o.removeAttr("checked");
			}
			var n = self.curPage + 1;

			// 可以下一页
			if (n <= self.totalPage) {
				self.curPage++;
				self._curPage.html(self.curPage);
				self.reflashTableData();
				
				self._firstPage.removeClass("dis");
				self._prevPage.removeClass("dis");
			}

			// 是否还可以继续下一页
			n = n + 1;
			if (n > self.totalPage) {
				self._firstPage.removeClass("dis");
				self._prevPage.removeClass("dis");
				self._nextPage.addClass("dis");
				self._lastPage.addClass("dis");
			}
		},

		// 尾页
		lastPage : function() {
			var self = this;
			var _o=$(".all-checkbox");
			if (_o!=null && _o.prop("checked")) {
				_o.removeAttr("checked");
			}
			self.curPage = self.totalPage;

			self._firstPage.removeClass("dis");
			self._prevPage.removeClass("dis");
			self._nextPage.addClass("dis");
			self._lastPage.addClass("dis");

			self.reflashTableData();
		}
	};
})(jQuery);
